/*
  new Date()
  new Date(date string)
  new Date(year, month)
  new Date(year,month,day)
  new Date(year,month,day,hours)
  new Date(year,month,day,hours,minutes)
  new Date(year,month,day,hours,minutes,seconds)
  new Date(year,month,day,hours,minutes,seconds,ms)
  new Date(milliseconds)
 */
const date = new Date();
console.log([
  date,
  date.toString(),
  date.toDateString(),
  date.toUTCString(),
  date.toISOString(),
]);

// 日期输入格式
// ISO Date: '2025-03-25'
// Short Date: '03/25/2025'
// Long Date: 'March 25, 2025'

console.log(new Date("2025-03-25"));
console.log(new Date("03/25/2025"));
console.log(new Date("March 25, 2025"));

// 获取指定日期与 1970年1月1日之间的毫秒数
let msec = Date.parse("March 21, 2012");
console.log(msec);

// 获取日期
{
  console.log(date.getFullYear()); // 获取年份 yyyy
  console.log(date.getMonth()); // 获取月份（0-11）
  console.log(date.getDate()); // 获取日期（1-31）
  console.log(date.getDay()); // 获取周几 (0-6)
  console.log(date.getHours()); // 小时（0-23）
  console.log(date.getMinutes()); // 分钟（0-59）
  console.log(date.getSeconds()); // 秒（0-59）
  console.log(date.getMilliseconds()); // 毫秒（0-999）
  console.log(date.getTime()); // 时间戳
  console.log(date.getTimezoneOffset()); // 获取本地时间和 UTC 时间之间的差异（分钟为单位）
}

// 设置日期
{
  const date = new Date("January 01, 2025");
  date.setFullYear(2020, 11, 3); // 年月日
  date.setMonth(7); // 7 月
  date.setDate(31); // 31 日
  date.setHours(23); // 24 小时
  date.setMinutes(59);
  date.setSeconds(30);
  console.log(date.toString());
}
